package org.dromara.xhlj.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.math.BigDecimal;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import org.dromara.starter.jpacomment.annotation.SailColumn;
import org.dromara.starter.jpacomment.annotation.SailIndex;
import org.dromara.starter.jpacomment.annotation.SailTable;
import org.dromara.starter.jpacomment.enums.IndexType;
/**
 * 活动任务模版对象 xhlj_activity_task_template
 *
 * @author yf
 * @date 2024-07-28
 */

@Data
@TableName("xhlj_activity_task_template")
@Entity
@Table(name = "xhlj_activity_task_template")
@SailTable(comment = "活动任务模版表", indexs = {
    @SailIndex(name = "idx_reward_method", type = IndexType.BTREE,
       columns = {"reward_method_type"}
    ),    @SailIndex(name = "idx_done_type", type = IndexType.BTREE,
       columns = {"done_type"}
    ),    @SailIndex(name = "idx_create_by", type = IndexType.BTREE,
       columns = {"create_by"}
    ),    @SailIndex(name = "idx_task_type", type = IndexType.BTREE,
       columns = {"task_type"}
    )}
)
public class XhljActivityTaskTemplate implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;
    public static final String TRANS_ID_TO_VO = "xhlj_activityTaskTemplate_vo";
    public static final String TRANS_ID_TO_VO_LIST = "xhlj_activityTaskTemplate_list";
    /**
     * 任务模版ID
     */
    @TableId(value = "task_template_id", type = IdType.AUTO)
    @Id
    private Integer taskTemplateId;
    /**
     * 任务类型（0=登录西湖论剑小程序，1=完善个人信息，2=观看直播回放10次，3=观看直播回放满30分钟，4=发帖量达到10次，5=订阅并报名活动1次，6=分享海报至微信好友，7=下载资料5次，8=参与会议聊天讨论20次，9=会议线下签到，10=参加现场活动，11=展商线下打卡，12=线下抽奖，13=体验展商产品并留言）
     */
    @Column(name = "task_type")
    @SailColumn(comment = "任务类型（0=登录西湖论剑小程序，1=完善个人信息，2=观看直播回放10次，3=观看直播回放满30分钟，4=发帖量达到10次，5=订阅并报名活动1次，6=分享海报至微信好友，7=下载资料5次，8=参与会议聊天讨论20次，9=会议线下签到，10=参加现场活动，11=展商线下打卡，12=线下抽奖，13=体验展商产品并留言）",type = "char(3)", defaultValue = "0")
    private String taskType;
    /**
     * 创建人sys_user（大会管理员/活动负责人）
     */
    @SailColumn(comment = "创建人sys_user（大会管理员/活动负责人）",type = "int", defaultValue = "NULL")
    @Column(name = "create_by")
    private Integer createBy;
    /**
     * 任务模版说明
     */
    @Column(name = "detailed_description")
    @SailColumn(comment = "任务模版说明",type = "text", defaultValue = "NULL")
    private String detailedDescription;
    /**
     * 任务参与条件类型（0=线上/线下，1=仅线上，2=仅线下）
     */
    @Column(name = "task_participation_condition_type")
    @SailColumn(comment = "任务参与条件类型（0=线上/线下，1=仅线上，2=仅线下）",type = "char(3)", defaultValue = "0")
    private String taskParticipationConditionType;
    /**
     * 任务完成类型（0=扫二维码，1=验证码，2=拍照打卡，3=线上）
     */
    @Column(name = "done_type")
    @SailColumn(comment = "任务完成类型（0=扫二维码，1=验证码，2=拍照打卡，3=线上）",type = "char(3)", defaultValue = "0")
    private String doneType;
    /**
     * 任务奖励类型（0=积分，1=纪念品）
     */
    @Column(name = "reward_method_type")
    @SailColumn(comment = "任务奖励类型（0=积分，1=纪念品）",type = "char(3)", defaultValue = "NULL")
    private String rewardMethodType;
    /**
     * 积分
     */
    @Column(name = "points")
    @SailColumn(comment = "积分",type = "decimal(10,2)", defaultValue = "NULL")
    private BigDecimal points;
    /**
     * 奖品名称
     */
    @Column(name = "reward_name")
    @SailColumn(comment = "奖品名称",type = "varchar(100)", defaultValue = "NULL")
    private String rewardName;
    /**
     * 奖励图片
     */
    @Column(name = "reward_image")
    @SailColumn(comment = "奖励图片",type = "text", defaultValue = "NULL")
    private String rewardImage;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @Column(name = "create_time")
    @SailColumn(comment = "创建时间",type = "datetime", defaultValue = "CURRENT_TIMESTAMP")
    private Date createTime;
    /**
     * 删除标志（0=未删除，2=已删除）
     */
    @TableLogic
    @TableField(fill = FieldFill.INSERT)
    @Column(name = "del_flag")
    @SailColumn(comment = "删除标志（0=未删除，2=已删除）",type = "char(1)", defaultValue = "0")
    private String delFlag;
}
